package com.yociyy.admin.mapper;

import com.yociyy.admin.model.entity.BaseMenu;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * 菜单信息 mapper
 *
 * @author Y.yang
 * @date 2019/12/13
 */
public interface BaseMenuMapper extends Mapper<BaseMenu> {

	/**
	 * 条件查询菜单信息
	 *
	 * @param menu 菜单对象
	 * @return 菜单列表
	 */
	List<BaseMenu> selectMenuList(BaseMenu menu);

	/**
	 * 根据角色ID查询菜单信息
	 *
	 * @param roleId 角色ID
	 * @return 菜单信息列表
	 */
	List<BaseMenu> selectMenuIdsByRoleId(Long roleId);

	/**
	 * 检查菜单是否子节点
	 *
	 * @param menuId 菜单id
	 * @return 结果
	 */
	int checkHasChildByMenuId(Long menuId);

	/**
	 * 通过用户id查询目录、菜单信息
	 *
	 * @param userId 用户id
	 * @return 菜单列表
	 */
	List<BaseMenu> selectMenuByUserId(@Param("userId") Long userId);

	/**
	 * 查询全部菜单树 (不包含按钮信息)
	 *
	 * @return 菜单列表
	 */
	List<BaseMenu> selectMenuTreeAll();

	/**
	 * 通过用户id查询权限
	 * 
	 * @param userId 用户id
	 * @return 权限列表
	 */
	List<String> selectMenuPermissionByUserId(Long userId);
}